神经网络在自然语言处理的各项任务中获得了成功, 在通过足够多标注数据的训练后, 神经网络往往有着很好的性能。但是由于在实际领域场景中高质量标注数据的缺失,以及大大小小特殊的需求,“规则”仍然扮演着重要的角色,因为规则可以直接地、清晰地表达人们的知识和意图。
近年来,越来越多的工作探索如何将规则(例如正则表达式、逻辑)和神经网络的优势互相结合。大部分的工作通过多任务学习(multi-task learning)、知识蒸馏(knowledge distillation)、融入规则特征等方式间接地融入规则的信息,这类方法简单有效,但是规则和神经网络之间通常联系不甚紧密。
本文介绍的工作属于另一种方式,将正则表达式直接转化成一个对应的神经网络,使得该神经网络不需要训练就有着和正则表达式系统相似的效果,同时,还可以通过标注数据进行训练以达到更好的性能。 正则表达式
正则表达式(regular expressions)是做字符识别、模式匹配的主要规则工具,可以被用于一些有明显模式(pattern)的领域分类(如意图分类)、领域标注任务(如槽填充)。我们以 ATIS 数据集为例,如下图所示:
1.1 意图识别(Intent Detection) “Show the flights from New York to Dallas” 这句话的意图类别为“查询航班信息(querying flights)”,给定一句话识别出其正确的意图类别就是意图分类任务,是文本分类任务的一种。而我们可以用如下的正则表达式来识别意图。
例如,我们可以使用下图的正则表达式来识别“querying flights”的意图。特殊符号 w 是 wildcard word 可以匹配任意词,而“*”的意思是可以出现任意次。下面正则表达式的意思是,如果句子中出现了 show … flights … 这样的语言结构,那么我们就认为其意图是“querying flight”。
1.2 语义槽填充(Slot Filling) “Show the flights from New York to Dallas” 中含有两个我们关心的语义槽,例如“New York”是“出发城市(fr.city)”, “Dallas” 是到达城市。槽填充任务的目的就是识别出句子中的语义槽,通常被建模成一种序列标注任务,用 BIO 的标注方法,类似于命名体识别(Named Entity Recognition)。 我们可以用下图的带捕获组的正则表达式来识别“出发城市(fr.city)”的语义槽。我们在 from 和 to 之间定义了捕获组,该捕获组的正则表达式匹配任意的 span,所以该正则表达式将出现在 from 和 to 之间的部分捕获,并且标注成 fr.city。
对于一些 pattern 比较清晰的领域数据,我们可以对每个意图、语义槽撰写正则表达式,通过他们的匹配结果来确定句子的意图类别以及句子中的语义槽。
我们在 EMNLP 2020 上发表的研究 Cold-Start and Interpretability:Turning Regular Expressions into Trainable Recurrent Neural Networks 将用作意图分类的正则表达式转化为可以训练的神经网络,PaperWeekly 在此前也有过介绍: 正则表达式与神经网络的深度融合 。
论文标题:
Cold-Start and Interpretability: Turning Regular Expressions into Trainable Recurrent Neural Networks http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/emnlp20reg.pdf
本文介绍将重点介绍我们发表于 EMNLP 2021 上的长文,“Neuralizing Regular Expressions for Slot Filling”,将用于语义槽填充的正则表达式转化为可以训练的神经网络的方法。
论文标题:
Neuralizing Regular Expressions for Slot Filling 论文链接:
https://aclanthology.org/2021.emnlp-main.747/ 代码链接:
https://github.com/jeffchy/RE2NN-SEQ
2.1 方法概览:将用做槽填充任务的正则表达式转化为神经网络
上图展示了将正则表达式转化为可以训练的神经网络的方法概览。
首先我们将根据领域知识撰写好的正则表达式转化为等价的有限状态转换器(Finite-state Transducer, FST)。
之后我们将 FST 转化为 i-FST(independent-FST),以减少表示 FST 的空间以及推断的复杂度。 我们将 i-FST 的张量表示进行张量秩分解,用分解后的矩阵来替代原先张量以减小 FST 推断的时间复杂度。
我们提出、使用了一些不影响对于正则表达式近似的增强网络表达能力的方法,包括融入外部词向量,加入 tanh 非线性函数等,最终得到了我们的神经网络 FSTRNN (Finite-State Transducer RNN)
2.2 正则表达式与有限状态转换器(Finite-state Transducer, FST) 任何带捕获组的正则表达式都可以被转化为有限状态转换器(FST),FST 是有限状态机的一种,下图展示了用作 fr.city 的正则表达式以及它对应的 FST。
FST 是有限状态机的一种,以图为例,FST 有起始状态 ,终止状态 ,以及若干其他状态。从起始状态开始,FST 接受一个输入序列(如句子),在状态之间转移,并且同时输出一个输出符号。例如,在读句子 “Show flights from New York to Dallas” 时,t=3 时刻,刚读完 from,我们在 FST 的 状态,接受“New”时,我们从 转移到了 (因为 接受 wildcard word),并且输出了 B-fr.city。 我们可以发现,图中的正则表达式和 FST 是等价的。对于例子中的句子,正则表达式匹配了句子,并且将”New York”捕获并且标注为 fr.city。而 FST 在接受整个句子之后,在“New York”处输出了 B-fr.city 和 I-fr.city。达到了同样的标注效果。对于该 FST 与 RE 在序列标注上的等价性的严格的证明见 paper 论文。 基于 FST 与正则表达式的等价性,我们下一步希望建模 FST 的运行。直接表示 FST 至少需要一个四阶的张量。我们输入的词表大小为 V,输出的标签集合大小为 L,FST 的状态数为 K,我们需要一个 VxLxKxK 的张量来表示 state 之间的转移以及转移时的输入、输出。这样的空间复杂度以及参数量是我们无法接受的,因此我们提出将 FST 转化为 i-FST。
如上图所示,上半部分的 FST 可以被等价地转化为下半部分的 i-FST。他们的主要区别是,给定 t 时刻到达的状态,i-FST 的输出就已经确定了(和上一个状态以及输入无关)。而原本的 FST,给定了到达的状态,我们仍然需要依赖上一个时刻的状态以及输入来确定输出。举例:在 i-FST 中,如果我们到达了状态 ,我们就确定了我们的输出为 I-fr.city。而在 FST 中,若到达了 ,我们有两种可能的输出:I-fr.city, B-fr.city。 基于 i-FST 的条件独立性,我们只需要用一个 VxKxK 的三阶张量 T 来表示随着输入的状态转移,以及一个 KxL 的矩阵 O 来表示到达的状态与输出标签的对应即可。我们还需要两个 K 维的。 给定句子 以及 i-FST,直接找到最好的输出序列 是 NP-Hard 的。因此我们使用近似算法:对于每个位置 t,找到最可能的 。我们可以基于 Variable Elimination,使用和隐马尔可夫模型的向前向后前向后向算法(forward-backward algorithm)类似的方法来进行每个时刻 的推断。 我们向前循环地计算 forward score ,并且向后循环地计算 backward score 。通过他们的相乘来得到每个时刻每个状态的分数。并且乘以矩阵 O 以得到每个时刻每个输出标签的分数。可以看出我们的推断算法非常接近 BiLSTM+Linear 网络结构的 forward 过程。
我们利用张量秩分解将三阶张量分解成三个矩阵,并且将 forward score 与 backward score 的计算进行重写,当张量分解的重建误差较低时,分解后和分解前有着近似的结果。
分解后的得到矩阵 可以被看成一个只有规则信息的词向量矩阵。我们可以将外部词向量映射到与 R 维度,并且用一个超参数 η 来结合两个词向量。当 η 接近 1 时,网络仍然近似正则表达式。
此外还有其他的一些增强模型的技巧请参照 paper 论文。 在 2.4 节中,我们说明了计算出每个时刻每个 label 分数的近似算法。在标注数据上训练,以及解码的方式和传统的神经序列标注模型类似。我们使用 Cross Entropy Loss 或者 CRF Loss 来计算输出与真实的标注的误差,用 Adam 来进行优化。我们对应的,使用 Softmax 以及 CRF Viterbi 进行解码。 实验
3.1 Baselines
我们的 baseline有正则表达式、传统序列标注模型(BiGRU+Softmax/CRF, BERT+Softmax/CRF)。我们还对比了其他利用同样的正则表达式增强神经网络的方法(MarryUp, Posterior Regularization, Knowledge Distillation)。 我们在 ATIS,ATIS-ZH,SNIPS 三个数据集上进行了实验。我们采取了零样本、少样本、多样本三种设定。数据集、正则表达式的统计信息与样例如图。
我们的模型 FSTRNN/GRU 不需要训练就有着和正则表达式相似的效果。 说明我们 的模型可以很好的近似正则表达式,并且作为一个神经网络较好的初始化。 3.3.2 GloVe词向量的少样本与全样本实验。
我们的模型可以在少量样本的情况下获得进一步的效果提升,并且由于比较好的蕴含了规则知识,在少样本与低资源的设定下有着较好的效果。在全样本的设定下,数据集平均下来也有着不错的竞争力,说明我们的模型可以和传统神经网络一样,被标注数据较好的训练。 前面的实验使用了 GloVe 词向量。在使用 BERT 的情况下,我们的模型依然有着不错的样本表现,并且在 10% 和 100% 的设定下,与没有用 BERT 的 FSTRNN 相比又着 8% 和 4% 的效果提升,说明我们的模型可以比较好地的 utilize 利用 BERT。
总结
我们提出了 FSTRNN,一种由用做槽填充任务的正则表达式直接转化而来的神经网络。实验表明,FSTRNN 在初始时有着和正则表达式相似的效果,并且可以像传统神经网络一样,能够较好得 利地用标注数据进行训练。 研究组介绍
上海科技大学信息学院屠可伟老师研究组主要从事自然语言处理、机器学习等人工智能领域的研究,目前侧重于研究语言结构的表示、学习与应用。研究组近几年已在各大顶会发表论文数十篇,2021 年已发表论文包括 ACL 长文 7 篇、EMNLP 长文 1 篇、NAACL 长文 1 篇等。
研究组招收硕士研究生(推免生)、博士后和研究助理,欢迎有兴趣的同学联系屠老师。
更多信息请访问屠可伟老师主页:
http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/
#投 稿 通 道 #
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读 ,也可以是学术热点剖析 、科研心得 或竞赛经验讲解 等。我们的目的只有一个,让知识真正流动起来。
📝 稿件基本要求:
• 文章确系个人原创作品 ,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬 ,具体依据文章阅读量和文章质量阶梯制结算
📬 投稿通道:
• 投稿邮箱: hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02 )快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
🔍
现在,在「知乎」 也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」 订阅我们的专栏吧